package com.example.train.model;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotEmpty;

/**
    * 后台用户权限表
    */
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class SysPermission implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    /**
    * 父级权限id
    */
    private Long pid;

    /**
    * 名称
    */
    @NotEmpty
    private String name;

    /**
    * 后端请求URL
    */
    private String reqUrl;
    /**
     * 后端请求限定方法
     */
    private String reqMethod;

    private String perms;

    /**
     * 前端页面请求路径
     */
    private String vueUrl;

    /**
     * 前端页面资源路径
     */
    private String vueComponent;

    /**
    * 权限类型：0->目录；1->菜单；2->按钮（接口绑定权限）
    */
    private Integer type;

    /**
    * 启用状态；0->禁用；1->启用
    */
    private Integer status;

    /**
    * 创建时间
    */
    private Date createTime;

    /**
     * 图标
     */
    private String icon;

    /**
    * 排序 越小优先级越高 默认0
    */
    private Integer sort;

    List<SysRole> roles;
}
